{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "import keras\n",
    "from keras.optimizers import SGD\n",
    "from sklearn.preprocessing import LabelBinarizer\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn import datasets\n",
    "from keras import backend as K\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.datasets import mnist ## Data set is imported here\n",
    "from keras.models import Sequential\n",
    "from keras.layers.convolutional import Conv2D\n",
    "from keras.layers.convolutional import MaxPooling2D\n",
    "from keras.layers.core import Activation\n",
    "from keras.layers.core import Flatten\n",
    "from keras.layers.core import Dense\n",
    "from keras import backend as K"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    "image_rows, image_cols = 28, 28\n",
    "batch_size = 256\n",
    "num_classes = 10\n",
    "epochs = 10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "(x_train, y_train), (x_test, y_test) = mnist.load_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x_train shape: (60000, 28, 28)\n",
      "60000 train samples\n",
      "10000 test samples\n"
     ]
    }
   ],
   "source": [
    "x_train = x_train.astype('float32')\n",
    "x_test = x_test.astype('float32')\n",
    "x_train /= 255\n",
    "x_test /= 255\n",
    "print('x_train shape:', x_train.shape)\n",
    "print(x_train.shape[0], 'train samples')\n",
    "print(x_test.shape[0], 'test samples')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [],
   "source": [
    "# convert class vectors to binary class matrices\n",
    "y_train = keras.utils.to_categorical(y_train, num_classes)\n",
    "y_test = keras.utils.to_categorical(y_test, num_classes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [],
   "source": [
    "if K.image_data_format() == 'channels_first':\n",
    "    x_train = x_train.reshape(x_train.shape[0], 1, image_rows, image_cols)\n",
    "    x_test = x_test.reshape(x_test.shape[0], 1, image_rows, image_cols)\n",
    "    input_shape = (1, image_rows, image_cols)\n",
    "else:\n",
    "    x_train = x_train.reshape(x_train.shape[0], image_rows, image_cols, 1)\n",
    "    x_test = x_test.reshape(x_test.shape[0], image_rows, image_cols, 1)\n",
    "    input_shape = (image_rows, image_cols, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = Sequential()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.add(Conv2D(20, (5, 5), padding=\"same\",input_shape=input_shape))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.add(Activation(\"relu\"))\n",
    "model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.add(Conv2D(50, (5, 5), padding=\"same\"))\n",
    "model.add(Activation(\"relu\"))\n",
    "model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.add(Flatten())\n",
    "model.add(Dense(500))\n",
    "model.add(Activation(\"relu\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.add(Dense(num_classes))\n",
    "model.add(Activation(\"softmax\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(loss=keras.losses.categorical_crossentropy,\n",
    "              optimizer=keras.optimizers.Adadelta(),\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 60000 samples, validate on 10000 samples\n",
      "Epoch 1/10\n",
      "60000/60000 [==============================] - 36s 607us/step - loss: 0.2736 - acc: 0.9127 - val_loss: 0.1051 - val_acc: 0.9649\n",
      "Epoch 2/10\n",
      "60000/60000 [==============================] - 37s 622us/step - loss: 0.0590 - acc: 0.9813 - val_loss: 0.0490 - val_acc: 0.9835\n",
      "Epoch 3/10\n",
      "60000/60000 [==============================] - 37s 614us/step - loss: 0.0387 - acc: 0.9879 - val_loss: 0.0939 - val_acc: 0.9671\n",
      "Epoch 4/10\n",
      "60000/60000 [==============================] - 37s 625us/step - loss: 0.0285 - acc: 0.9910 - val_loss: 0.0267 - val_acc: 0.9905\n",
      "Epoch 5/10\n",
      "60000/60000 [==============================] - 37s 615us/step - loss: 0.0215 - acc: 0.9933 - val_loss: 0.0305 - val_acc: 0.9896\n",
      "Epoch 6/10\n",
      "60000/60000 [==============================] - 37s 614us/step - loss: 0.0164 - acc: 0.9949 - val_loss: 0.0228 - val_acc: 0.9920\n",
      "Epoch 7/10\n",
      "60000/60000 [==============================] - 37s 614us/step - loss: 0.0136 - acc: 0.9955 - val_loss: 0.0236 - val_acc: 0.9918\n",
      "Epoch 8/10\n",
      "60000/60000 [==============================] - 37s 616us/step - loss: 0.0106 - acc: 0.9969 - val_loss: 0.0279 - val_acc: 0.9909\n",
      "Epoch 9/10\n",
      "60000/60000 [==============================] - 37s 617us/step - loss: 0.0082 - acc: 0.9976 - val_loss: 0.0246 - val_acc: 0.9917\n",
      "Epoch 10/10\n",
      "60000/60000 [==============================] - 37s 620us/step - loss: 0.0062 - acc: 0.9983 - val_loss: 0.0316 - val_acc: 0.9907\n"
     ]
    }
   ],
   "source": [
    "theLeNetModel = model.fit(x_train, y_train,\n",
    "          batch_size=batch_size,\n",
    "          epochs=epochs,\n",
    "          verbose=1,\n",
    "          validation_data=(x_test, y_test))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [],
   "source": [
    "score = model.evaluate(x_test, y_test, verbose=0)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'acc')"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "f, ax = plt.subplots()\n",
    "ax.plot([None] + theLeNetModel.history['acc'], 'o-')\n",
    "ax.plot([None] + theLeNetModel.history['val_acc'], 'x-')\n",
    "ax.legend(['Train acc', 'Validation acc'], loc = 0)\n",
    "ax.set_title('Training/Validation acc per Epoch')\n",
    "ax.set_xlabel('Epoch')\n",
    "ax.set_ylabel('acc')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'acc')"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "f, ax = plt.subplots()\n",
    "ax.plot([None] + theLeNetModel.history['loss'], 'o-')\n",
    "ax.plot([None] + theLeNetModel.history['val_loss'], 'x-')\n",
    "ax.legend(['Train loss', 'Validation loss'], loc = 0)\n",
    "ax.set_title('Training/Validation loss per Epoch')\n",
    "ax.set_xlabel('Epoch')\n",
    "ax.set_ylabel('acc')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
